﻿Imports System.Net.Mail
Imports System.Data.OleDb

Public Class Verzenden2

    Inherits System.Web.UI.Page
    Dim intVergaderingId As Integer
    Dim intTellerVoorVerzenden As Integer
    Dim strGuid() As String
    Dim strGoeiVormAgendaPunten As String
    Dim strDatum1Db As String
    Dim strDatum2Db As String
    Dim strPlaatsDb As String
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack = False Then
            'Declaratie
            Dim intAantalGeselecteerde As String
            Dim strWelkeVergadering As String
            Dim strGeselecteerdeId() As String
            Dim strGeselecteerdeEmails() As String
            Dim objMail As New MailMessage()
            Dim objMijnAdres As New MailAddress("info@proventi.be", "Proventi")
            Dim objSmtp As New SmtpClient(My.Settings.SMTPServer)
            Dim strAan As String
            Dim intArrayItems As Integer = -1
            Dim strsqlGuid As String
            Dim cnnAandeelhouders As New OleDbConnection
            Dim cmdCommando As New OleDbCommand
            Dim dtrDataReader As OleDbDataReader
            intVergaderingId = PreviousPage.IdVergadering

            'Gegevens van vorige pagina eruithalen
            'Dit wil zeggen dat de gegevens die we verzameld hebben op de vorige pagina hergebruiken wij op deze pagina
            intAantalGeselecteerde = PreviousPage.AantalGeselecteerd
            strGeselecteerdeId = PreviousPage.GeselecteerdeId

            strWelkeVergadering = PreviousPage.TitelVergadering

            'Connectie voorbereiden
            cnnAandeelhouders.ConnectionString = My.Settings.csAandeelhouders
            cmdCommando.Connection = cnnAandeelhouders

            For intTeller As Integer = 0 To intAantalGeselecteerde
                cnnAandeelhouders.Open()
                strsqlGuid = "SELECT [Guid],[E-mail] FROM [tblAandeelhouders] WHERE [Id]=" & strGeselecteerdeId(intTeller)
                cmdCommando.CommandText = strsqlGuid
                dtrDataReader = cmdCommando.ExecuteReader
                Do While dtrDataReader.Read()
                    ReDim Preserve strGuid(intTeller)
                    ReDim Preserve strGeselecteerdeEmails(intTeller)
                    strGuid(intTeller) = dtrDataReader.Item("Guid").ToString()
                    strGeselecteerdeEmails(intTeller) = dtrDataReader.Item("E-mail").ToString()
                Loop
                cnnAandeelhouders.Close()
            Next


            For intTellerVoorVerzenden = 0 To intAantalGeselecteerde
                mailContent.InnerHtml = PreviousPage.DefaultBrief
                myReplace()
                strAan = strGeselecteerdeEmails(intTellerVoorVerzenden)
                'stel de verzender en ontvanger in 
                objMail.From = objMijnAdres
                objMail.To.Add(strAan)
                'stel het subject en de tekst in 
                objMail.Subject = strWelkeVergadering
                'If intTeller = 0 Then
                '    'nothing
                'Else
                '    ' strHyperlinkOude = "<a href=Bevestiging.aspx?AH=" & strGuid(intTeller - 1) & "V=" & intVergaderingId(intTeller - 1) & ">Klik hier voor aanwezig of afwezig</a>"
                '    'strHyperlinkNieuwe = "<a href=Bevestiging.aspx?AH=" & strGuid(intTeller) & "V=" & intVergaderingId(intTeller) & ">Klik hier voor aanwezig of afwezig</a>"
                '    'mailContent.InnerHtml = mailContent.InnerHtml.Replace(strHyperlinkOude, strHyperlinkNieuwe)
                'End If

                objMail.Body = mailContent.InnerText
                objMail.IsBodyHtml = True
                'verzend het bericht 
                objSmtp.Send(objMail)

            Next


            Response.Redirect("Verzonden.aspx")
        End If

    End Sub
    Public Function myReplace() As Boolean
        'Declaratie
        Static strDatum1 As String = "[$date1$]"
        Static strDatum2 As String = "[$date2$]"
        Static strPlaats As String = "[$plaats$]"
        Static strDefaultAgendaPunt As String = "[Agendapunten]"
        Dim strDefaultTitel As String = "[Titel]"
        Dim cnndb3 As New OleDbConnection
        Dim cmdCommando As New OleDbCommand
        Dim dtrDataReader2 As OleDbDataReader
        Dim strGekozenVergadering As String = PreviousPage.TitelVergadering
        Dim strsqlGekozenVergaderingGegevens As String
        Dim strsqlAgendaPunten As String
        Dim strAgendaPunten() As String
        Dim intTellerAgendaPunt As Integer = -1
        If intTellerVoorVerzenden = 0 Then

        End If
        'SQL's klaarzetten 
        strsqlGekozenVergaderingGegevens = "SELECT [Start], [Eind], [Plaats] FROM [tblVergaderingen] WHERE [Id] =" & intVergaderingId
        strsqlAgendaPunten = "SELECT [Omschrijving] FROM [tblAgendaPunten] WHERE [Vergadering] =" & intVergaderingId
      'Connectie klaarmaken
        cnndb3.ConnectionString = My.Settings.csAandeelhouders
        cmdCommando.Connection = cnndb3
        cmdCommando.CommandText = strsqlGekozenVergaderingGegevens
        Try
            'Connectie openen
            cnndb3.Open()
        Catch ex As Exception
            lblFout.Text = "Kan de database niet openen"
        End Try
        Try
            'datareader klaarmaken
            dtrDataReader2 = cmdCommando.ExecuteReader
            'Gegevens uit databank uithalen
            Do While dtrDataReader2.Read()
                strDatum1Db = dtrDataReader2.Item("Start")
                strDatum2Db = dtrDataReader2.Item("Eind")
                strPlaatsDb = dtrDataReader2.Item("Plaats")

            Loop
        Catch ex As Exception
            lblFout.Text = "Kan de gegevens niet uit de database halen"
        Finally
            'Connectie sluiten
            cnndb3.Close()
        End Try

        'Andere SQL in command steken
        cmdCommando.CommandText = strsqlAgendaPunten
        Try
            'Connectie openen
            cnndb3.Open()
        Catch ex As Exception
            lblFout.Text = "Kan de databank niet openen"
        End Try
        Try
            'Gegevens uit databank halen
            Do While dtrDataReader2.Read()
                intTellerAgendaPunt += 1
                ReDim Preserve strAgendaPunten(intTellerAgendaPunt)
                strAgendaPunten(intTellerAgendaPunt) = dtrDataReader2.Item("Omschrijving")
            Loop
        Catch ex As Exception
            lblFout.Text = "Kan de gegevens in databank niet ophalen"
            ReDim Preserve strAgendaPunten(0)
            strAgendaPunten(0) = "Geen"
        Finally
            'Connectie sluiten
            cnndb3.Close()
        End Try


        If IsNothing(dtrDataReader2) Then
            dtrDataReader2.Close()
        End If
        'Agendapunten klaarmaken om in de brief te steken (goeie vorm)
        If Not strAgendaPunten(0) = "Geen" Then
            For intTeller As Integer = 0 To intTellerAgendaPunt
                If intTeller = 0 Then
                    strGoeiVormAgendaPunten &= "<ul> <li> " & strAgendaPunten(intTeller) & "</li> </ul>"
                ElseIf intTeller = intTellerAgendaPunt Then

                    strGoeiVormAgendaPunten &= "<li> " & strAgendaPunten(intTeller) & "</li>"
                Else
                    strGoeiVormAgendaPunten &= "<li> " & strAgendaPunten(intTeller) & "</li> </ul>"
                End If

            Next
        End If

        'Alles vervangen om in de brief te zetten
        mailContent.InnerHtml = mailContent.InnerHtml.Replace(strDatum1, strDatum1Db)
        mailContent.InnerHtml = mailContent.InnerHtml.Replace(strDatum2, strDatum2Db)
        mailContent.InnerHtml = mailContent.InnerHtml.Replace(strPlaats, strPlaatsDb)
        mailContent.InnerHtml = mailContent.InnerHtml.Replace("[uniqu]", "<a href=Bevestiging.aspx?AH=" & strGuid(intTellerVoorVerzenden) & "V=" & intVergaderingId & ">Klik hier voor aanwezig of afwezig</a>")
        If strAgendaPunten(0) = "Geen" Then
            mailContent.InnerHtml = mailContent.InnerHtml.Replace(strDefaultAgendaPunt, "(Geen)")
        Else
            mailContent.InnerHtml = mailContent.InnerHtml.Replace(strDefaultAgendaPunt, strGoeiVormAgendaPunten)

        End If
        mailContent.InnerHtml = mailContent.InnerHtml.Replace(strDefaultTitel, strGekozenVergadering)

        Return True

    End Function

End Class